package com.xjh.basestudy.designmode.behaviorMode.behaviorMode4_Strategy.p2_strategy;

/**
 * @Author XuJianHua
 * @Date 2022/10/4 16:05
 * @Description
 * 显而易见，通过重构的计算器类变得非常灵活，不管进行哪种运算，我们只需注入相应的算法策略即可得到结果。
 * 此外，今后若要进行功能扩展，只需要新增兼容策略接口的算法策略类（如乘法、除法等），
 * 这与插卡式游戏机的策略如出一辙，我们不必再对系统做任何修改便可实现功能的无限扩展。
 */
public class Client {

    public static void main(String[] args) {
        Calculator calculator = new Calculator();//实例化计算器
        calculator.setStrategy(new Addition());//注入加法策略实现
        System.out.println(calculator.getResult(1, 1));//输出结果为2

        calculator.setStrategy(new Subtraction());//再注入减法策略实现
        System.out.println(calculator.getResult(1, 1));// 输出结果为0
    }

}